package com.cw2.creatation.prototype;

/**
 * 一、设计模式:原型模式
 * 是用于创建重复的对象，同时又能保证性能。
 * 1、Mybatis:操作数据库，从数据库里面查出很多记录（70%改变很少）
 * 2、每次查数据库，查到以后把所有数据都封装在一个对象，返回
 *      10000 thread：查询一个记录： new user("zhangsan ,18"):每次创建一个对象封装并返回一个对象
 *      系统里面就会有10000个user；浪费内存;

 */
public class MainTest {
    public static void main(String[] args) {
        Mybatis mybatis = new Mybatis();
        User zhangsan1 = mybatis.getUser("zhangsan");
        System.out.println("1---->" + zhangsan1);

        // 这里会污染缓存数据
        zhangsan1.setName("李四");
        System.out.println("zhangsan1自己改为了" + zhangsan1);

        User zhangsan2 = mybatis.getUser("zhangsan");
        System.out.println("1---->" + zhangsan2);
        User zhangsan3 = mybatis.getUser("zhangsan");
        System.out.println("1---->" + zhangsan3);
        User zhangsan4 = mybatis.getUser("zhangsan");
        System.out.println("1---->" + zhangsan4);
        User zhangsan5 = mybatis.getUser("zhangsan");
        System.out.println("1---->" + zhangsan5);
    }
}
